package com.example.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.example.entity.dto.InteractDto;
import com.example.entity.dto.TopicDto;
import com.example.entity.dto.TopicTypeDto;
import com.example.entity.vo.request.AddCommentVo;
import com.example.entity.vo.request.TopicCreateVo;
import com.example.entity.vo.request.TopicUpdateVo;
import com.example.entity.vo.response.CommentVo;
import com.example.entity.vo.response.TopicDetailVo;
import com.example.entity.vo.response.TopicPreviewVo;
import com.example.entity.vo.response.TopicTopVo;
import com.example.mapper.TopicMapper;

import java.util.List;

public interface TopicService extends IService<TopicDto> {

    //获取类型列表
    List<TopicTypeDto> getTopicType();

    //创建帖子
    String createTopic(int id, TopicCreateVo vo);

    //查询帖子列表
    List<TopicPreviewVo> listTopicByPage(int i, int type);

    //获取置顶帖子
    List<TopicTopVo> listTopTopics();

    //查询帖子详情
    TopicDetailVo getTopic(int tid, int id);

    //交互帖子：点赞收藏
    void interact(InteractDto interactDto, boolean state);

    //查看用户收藏列表
    List<TopicPreviewVo> listTopicCollects(int id);

    //更新帖子
    String updateTopic(int id, TopicUpdateVo vo);

    //发表评论
    String createComment(int id, AddCommentVo vo);

    //展示评论
    List<CommentVo> comments(int tid, int i);

    //删除评论
    void deleteComment(int id, int uid);
}
